package com.blog.web.login.controller;

import javax.annotation.Resource;
import javax.servlet.http.HttpSession;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import com.blog.consts.AppConsts;
import com.blog.service.entity.User;
import com.blog.service.inter.UserService;
import com.blog.util.DesUtil;
import com.blog.web.login.model.BackLoginModel;
import com.blog.web.rtmsg.RtMsg;

/**
 * 文件名： com.blog.web.login.controller.LoginController.java
 * 作者： G20
 * 日期： 2017年4月12日
 * 功能说明：登陆控制层
 * =========================================================
 * 修改记录：
 * 修改作者 日期 修改内容
 * =========================================================
 * Copyright (c) 2010-2011 .All rights reserved.
 */
@Controller
@RequestMapping(value = "/login")
public class LoginController {

	// 用户服务类
	@Resource
	private UserService userService;

	/**
	 *
	 * @Method: com.blog.web.login.controller.LoginController.backLogin
	 * @Description: 后台登陆页面
	 * @author: WenBin
	 * @date: 2017年4月13日
	 * @version: 1.0
	 * @return
	 * String
	 * @update [日期YYYY-MM-DD] [更改人姓名][变更描述]
	 */
	@RequestMapping(value = "/backLogin")
	public String backLogin() {

		return "login/backdoor";
	}
	/**
	 *
	 * @Method: com.blog.web.login.controller.LoginController.backLoginValidate
	 * @Description: 后台登陆
	 * @author: WenBin
	 * @date: 2017年4月14日
	 * @version: 1.0
	 * @param login
	 * @param session
	 * @return
	 * Object
	 * @update [日期YYYY-MM-DD] [更改人姓名][变更描述]
	 */
	@RequestMapping(value = "/backLoginValidate", produces = {AppConsts.PRODUCES_APPLICATION_JSON},method=RequestMethod.POST)
	public @ResponseBody Object backLoginValidate(BackLoginModel login,HttpSession session) {
		String code = (String)session.getAttribute(AppConsts.LOGIN_CODE);
		if(login.getCode()==null || !code.equals(login.getCode())){
			System.out.println("验证码未通过");
			return new RtMsg(AppConsts.RT_CODE_VALIDATOR);
		}
		User user = userService.findUserByLoginAccount(login.getAccount());
		if(user == null ||  !DesUtil.decryptBasedDes(user.getUserPassword()).equals(login.getPassword())){
			System.out.println("登陆验证失败");
			return new RtMsg(AppConsts.RT_CODE_VALIDATOR);
		}
		session.setAttribute(AppConsts.USER_INFO, user);
		return new RtMsg();
	}
}
